package cn.iocoder.yudao.module.scrm.controller.admin.marketing.vo.content;

import cn.iocoder.yudao.module.scrm.controller.admin.commom.vo.FileInfoVO;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.Size;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT;

@Schema(description = "管理后台 - 营销内容分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MarketingContentPageReqVO extends PageParam {

    @Schema(description = "营销分类表id", example = "16198")
    private String categoryId;

    @Schema(description = "营销类型   scrm_marketing_type", example = "1")
    private String marketingType;

    @Schema(description = "数据范围(指定部门id数组)", example = "8680")
    private String deptId;

    @Schema(description = "数据范围(显示部门名称数组)", example = "李四")
    private String deptName;

    @Schema(description = "标题")
    private String title;

    @Schema(description = "分类名称", example = "王五")
    private String name;

    @Schema(description = "内容")
    @Size(max = 16777215, message = "内容不能超过 16 MB（约 16,777,215 字节）")
    private String content;

    @Schema(description = "文章案例-来源")
    private String source;

    @Schema(description = "是否发布 默认0发布 1关闭")
    private Boolean isIssue;

    @Schema(description = "封面图url", example = "https://www.iocoder.cn")
    private List<FileInfoVO> coverUrl;

    @Schema(description = "图片url", example = "https://www.iocoder.cn")
    private List<FileInfoVO> picturesUrl;

    @Schema(description = "视频url", example = "https://www.iocoder.cn")
    private List<FileInfoVO> videoUrl;

    @Schema(description = "略缩图url", example = "https://www.iocoder.cn")
    private List<FileInfoVO> displayUrl;

    @Schema(description = "素材类型0图文 1视频文 2纯文本", example = "2")
    private String materialType;

    @Schema(description = "备用字段")
    private String remarkV;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
    private LocalDateTime[] createTime;

    @Schema(description = "创建者姓名")
    private String creatorName;


    @Schema(description = "默认0为文件夹 其它类型是字典中的  scrm_folder_type")
    private String folderType;

    @Schema(description = "父级id(顶层默认为0)")
    private Integer parentId;

    @Schema(description = "默认0企业文件1私人文件")
    private String fileType;

    @Schema(description = "文件大小默认0")
    private String fileSize;

    @Schema(description = "文件路径", example = "https://www.iocoder.cn")
    private List<FileInfoVO> fileUrl;

}